package com.wolfeyes.common.core.enums.common;

/**
 * 
 * @descript 公共信息-日期格式化文本类型信息枚举管理
 * @projectName film
 * @className DateFormatTypeEnum.java
 * @see {@link DateFormatTypeEnum #SHORTDATE}
 * @see {@link DateFormatTypeEnum #SHORTDATESLASH}
 * @see {@link DateFormatTypeEnum #SHORTDATEPOINT}
 * @see {@link DateFormatTypeEnum #LONGDATE}
 * @see {@link DateFormatTypeEnum #NORMALSHORTDATE}
 * @see {@link DateFormatTypeEnum #NORMALLONGDATE}
 * @see {@link DateFormatTypeEnum #CHINESESHORT}
 * @see {@link DateFormatTypeEnum #CHINESEWITHHOUR}
 * @author yanyljava
 * @since 2017年07月09日下午5:37:39
 * @createTime 2018年07月09日 下午17:04:13
 * @version 1.0.0
 * @return String
 * @throws Exception
 */
public enum DateFormatTypeEnum {
	
	/**
	 * 短日期格式化；
	 * "yyyy-MM-dd"
	 */
	SHORTDATE(0, "yyyy-MM-dd"),
	
	/**
	 * 短日期格式化；
	 * "yyyy/MM/dd"
	 */
	SHORTDATESLASH(1, "yyyy/MM/dd"),
	
	/**
	 * 短日期格式化；
	 * "yyyy.MM.dd"
	 */
	SHORTDATEPOINT(2, "yyyy.MM.dd"),
	
	/**
	 * 长日期格式化；
	 * "yyyy-MM-dd HH:mm:ss"
	 */
	LONGDATE(3, "yyyy-MM-dd HH:mm:ss"),
	
	/**
	 * 普通短日期格式化；
	 * "yyyyMMdd"
	 */
	NORMALSHORTDATE(4, "yyyyMMdd"),
	
	/**
	 * 普通长日期格式化；
	 * "yyyyMMddHHmmssSSS"
	 */
	NORMALLONGDATE(5, "yyyyMMddHHmmssSSS"),
	
	/**
	 * 中文格式化，年月日；
	 * "yyyy年MM月dd日"
	 */
	CHINESESHORT(6, "yyyy年MM月dd日"),
	
	/**
	 * 中文格式化，带时；
	 * "yyyy年MM月dd日HH时"
	 */
	CHINESEWITHHOUR(7, "yyyy年MM月dd日HH时");

	// 类型编号
	private final Integer type;
	
	// 类型名称
	private final String value;

	DateFormatTypeEnum(Integer type, String value) {
        this.value = value;
        this.type = type;
    }

    public static String getValue(int type) {
    	DateFormatTypeEnum[] accountTypes = DateFormatTypeEnum.values();
        if (accountTypes != null && accountTypes.length > 0){
            for (DateFormatTypeEnum accountType : accountTypes){
                if (accountType.type == type){
                    return accountType.value;
                }
            }
        }
        return null;
    }
    
    public int getType() {
        return type;
    }
    
    public String getValue() {
        return value;
    }
    
    public static DateFormatTypeEnum getTypeEnume(int type){
    	DateFormatTypeEnum[] accountTypes = DateFormatTypeEnum.values();
        if (accountTypes != null && accountTypes.length > 0){
            for (DateFormatTypeEnum accountType : accountTypes){
                if (accountType.type == type){
                    return accountType;
                }
            }
        }
        return null;
    }
}

